'use strict';

/**
 * 用户中间件
 * @param options
 * @return {user}
 */
module.exports = options => {
  /**
   * 用户当前状态信息需要在控制器处理前初始化完成，因此借助于中间件来完成
   * @param ctx
   * @param next
   * @return {Promise<void>}
   */
  return async function user(ctx, next) {
    const userService = ctx.service.user;

    await userService.checkCookies();

    userService.getUserRights();

    await next();
  };
};
